package com.uniknow.app.ui.fragment;

import roboguice.fragment.RoboFragment;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;

import com.uniknow.app.ui.BaseFragmentActivity;
import com.uniknow.app.util.Util;


public abstract class BaseFragment extends RoboFragment {

	public final String TAG = this.getClass().getSimpleName(); 
	
	public Context mContext;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		mContext = getActivity();
	}
	
	public void setTitile(CharSequence title){
		if(getActivity() != null && getActivity() instanceof BaseFragmentActivity){
			getActivity().setTitle(title);
		}
	}
	
	public void setTitile(int resId){
		if(getActivity() != null && getActivity() instanceof BaseFragmentActivity){
			getActivity().setTitle(resId);
		}
	}
	
	/**
	 * 方法名：onBack
	 * 描述：在点击返回键（或者按钮）时要执行的操作
	 * @参数：   参数名  参数类型   参数描述
	 * @返回值类型： boolean   为true时事件处理到此方法结束，否则继续执行外部代码
	 */
	public boolean onBack(){
		
		return false;
	}
	
	public void setTitleLeftVisiable(boolean  isShow){
		if(getActivity() != null ){
			((BaseFragmentActivity)getActivity()).setLeftButtonVisible(isShow);			
		}
	}
	
	public void setTitleRightButton(boolean isShow, int resId){
		if(getActivity() != null ){
			((BaseFragmentActivity)getActivity()).setRightButtonVisible(isShow);
			if(isShow){
				((BaseFragmentActivity)getActivity()).setRightButtonText(resId);
			}
		}
	}
	
	public void setTitleRightButton(boolean isShow, CharSequence str){
		if(getActivity() != null ){
			((BaseFragmentActivity)getActivity()).setRightButtonVisible(isShow);
			if(isShow){
				((BaseFragmentActivity)getActivity()).setRightButtonText(str);
			}
		}
	}
	
	public boolean onTitleRightClick(View v){
		
		return false;
	}

	
	public boolean onTitleLeftClick(View v){
		
		return false;
	}
	
	public void showProgressDialog(){
		if(getActivity() != null && getActivity() instanceof BaseFragmentActivity){
			if(!Util.isNetworkAvailable(getActivity())){
				return;
			}
			((BaseFragmentActivity)getActivity()).showProgressDialog();
		}
	}
	
	public void closeProgressDialog(){
		if(getActivity() != null && getActivity() instanceof BaseFragmentActivity){
			((BaseFragmentActivity)getActivity()).closeProgressDialog();
		}
	}
	
	/**
	 * 方法名：refreshView
	 * 描述：主动的刷新界面显示
	 * @参数：   参数名  参数类型   参数描述
	 * @返回值类型： void   
	 * @创建时间：  2014年11月11日 
	 * @创建者：Administrator
	 * @变更记录：2014年11月11日上午11:32:16 by
	 */
	public void refreshView(){
		
	}
	
	public void back2LastFrag(Bundle bundle){
		if(getActivity() != null && getActivity() instanceof BaseFragmentActivity){
			((BaseFragmentActivity)getActivity()).back2LastFrag(bundle);	
		}
	}
	
	public void showFragPage(BaseFragment frag){
		if(getActivity() != null && getActivity() instanceof BaseFragmentActivity){
			((BaseFragmentActivity)getActivity()).showFragPage(frag);	
		}
	}
	
	/** 
     * 方法名：getFragHandler
     * 描述：获取当前fragment的 handler 对象
     * @参数：   参数名  参数类型   参数描述
     * @返回值类型： Handler   
     * @创建时间：  2014年6月23日 
     * @创建者：zhangyao
     * @变更记录：2014年6月23日上午11:07:15 by
     */
    public Handler getFragHandler(){
    	
    	return null;
    }
    
    public boolean isAttached(){
    	return isAdded() && getActivity()!=null;
    }
	
}
